% !Mode:: "TeX:UTF-8"

\chapter{问题及解决}

\section{前端}

1.接收框数时间标识、数据长度等显示错误

解决方案：标签（JLabel）的坐标设定间距过小，标签本身存在一定的长度，如果距离过小会导致部分标签无法出现，只需要控制距离即可。

2.菜单栏无法保存接收框文本信息

解决方案：在菜单——保存文件中有read/write方法，里面定义了文本区JTextField，需要在Mnuiopen中定义两个文本区相等。


\section{后端}

1.电脑没有“端口”

解决方案：查找后得知win10的电脑有时会自动更新，而“端口”属于“老旧设备”，就被自动卸载了，下载驱动人生App，为电脑安装驱动设备即可。

2.关于串口通信，用eclipse编辑时要导入一个jar包-RXTXcomm.jar

使用方法： 

拷贝 RXTXcomm.jar 到 JAVA HOME jre lib ext目录中； 

拷贝 rxtxSerial.dll 到 JAVA HOME jre bin目录中； 

拷贝 rxtxParallel.dll 到 JAVA HOME jre bin目录中； 

JAVA HOME为jdk安装路径。

3.光是收发数据是不够的，需要将资料里的指令展示给用户。

解决方案：通过对资料的分析，果宏帅将指令分成三类，并将自己对APP界面的想法分享给了前端开发的同学，并完成了三种指令发送面板功能的实现。

4.在将接受数据分类时，发现ESP32返回的指令并不规则，简单的 CR BEL 无法显示在APP上

解决方案：通过对ASCII表的查询得到了他们的ASCII码值，最终可以正确返回CR/BEL。而在接收的数据帧指令上，开始只是单纯的判断第一个字符来判别帧类型和格式，但是程序却无法分辨这些指令，最终发现ESP32会先发送一个"/r"，这个问题的发现对我们在指令分类和指令分解上起到了关键的作用。

5. 在数据统计功能的实现上遇到了新指令会覆盖旧指令的问题

解决方案：发现局部变量保存数据后再接受新指令会重新初始化，在将其设为全局变量后问题解决。解决覆盖问题后，我们遇到了新指令如果和旧指令重复仍会显示在数据统计窗口中，最终通过indexof函数解决了这个问题。

6.mac本在移植时出现各种各样的bug，但对UI界面的设计影响不大。
